package com.kk.xhr.common.pojo;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * 学位枚举
 *
 * @author luokexiong
 * @version 1.0 2021/2/14
 * @since 2.0.0
 */
@Getter
@AllArgsConstructor
public enum DegreeEnum {
    /** 其他 */
    OTHER((byte) 0),
    /** 小学 */
    PRIMARY((byte) 1),
    /** 中学 */
    JUNIOR((byte) 2),
    /** 高中 */
    SENIOR((byte) 3),
    /** 大学 */
    UNIVERSITY((byte) 4),
    /** 大专 */
    SPECIALTY((byte) 5),
    /** 本科 */
    UNDERGRADUATE((byte) 6),
    /** 硕士 */
    MASTER((byte) 7),
    /** 博士 */
    DOCTOR((byte) 8);

    private final byte value;
    private static final Map<Byte, DegreeEnum> map = Arrays.stream(DegreeEnum.values())
        .collect(Collectors.toMap(DegreeEnum::getValue, Function.identity()));

    public static DegreeEnum from(Byte from) {
        if (null == from) {
            return null;
        }
        return map.getOrDefault(from, OTHER);
    }
}
